home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / StandardFile.p < prev    next >
Text File  |  1995-09-14  |  9KB  |  278 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 10:31:24 PM }
  2. {}
  3. {     File:        StandardFile.p}
  4. { }
  5. {     Contains:    Standard File package Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit StandardFile;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __STANDARDFILE__}
  26. {$SETC __STANDARDFILE__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Quickdraw, Dialogs, Files;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36. { resource IDs and item offsets of pre-7.0 dialogs }
  37.         putDlgID = -3999;
  38.         putSave = 1;
  39.         putCancel = 2;
  40.         putEject = 5;
  41.         putDrive = 6;
  42.         putName = 7;
  43.         getDlgID = -4000;
  44.         getOpen = 1;
  45.         getCancel = 3;
  46.         getEject = 5;
  47.         getDrive = 6;
  48.         getNmList = 7;
  49.         getScroll = 8;
  50. { resource IDs and item offsets of 7.0 dialogs }
  51.         sfPutDialogID = -6043;
  52.         sfGetDialogID = -6042;
  53.         sfItemOpenButton = 1;
  54.         sfItemCancelButton = 2;
  55.         sfItemBalloonHelp = 3;
  56.         sfItemVolumeUser = 4;
  57.         sfItemEjectButton = 5;
  58.  
  59.         sfItemDesktopButton = 6;
  60.         sfItemFileListUser = 7;
  61.         sfItemPopUpMenuUser = 8;
  62.         sfItemDividerLinePict = 9;
  63.         sfItemFileNameTextEdit = 10;
  64.         sfItemPromptStaticText = 11;
  65.         sfItemNewFolderUser = 12;
  66. { pseudo-item hits for use in DlgHook }
  67.         sfHookFirstCall = -1;
  68.         sfHookCharOffset = $1000;
  69.         sfHookNullEvent = 100;
  70.         sfHookRebuildList = 101;
  71.         sfHookFolderPopUp = 102;
  72.         sfHookOpenFolder = 103;
  73. { the following are only in system 7.0+ }
  74.         sfHookOpenAlias = 104;
  75.         sfHookGoToDesktop = 105;
  76.         sfHookGoToAliasTarget = 106;
  77.         sfHookGoToParent = 107;
  78.         sfHookGoToNextDrive = 108;
  79.         sfHookGoToPrevDrive = 109;
  80.         sfHookChangeSelection = 110;
  81.  
  82.         sfHookSetActiveOffset = 200;
  83.         sfHookLastCall = -2;
  84.  
  85. { the refcon field of the dialog record during a}
  86. { modalfilter or dialoghook contains one of the following }
  87.         sfMainDialogRefCon = 'stdf';
  88.         sfNewFolderDialogRefCon = 'nfdr';
  89.         sfReplaceDialogRefCon = 'rplc';
  90.         sfStatWarnDialogRefCon = 'stat';
  91.         sfLockWarnDialogRefCon = 'lock';
  92.         sfErrorDialogRefCon = 'err ';
  93.  
  94.  
  95.     type
  96.         SFReply = record
  97.                 good: BOOLEAN;
  98.                 copy: BOOLEAN;
  99.                 fType: OSType;
  100.                 vRefNum: INTEGER;
  101.                 version: INTEGER;
  102.                 fName: Str63;
  103.             end;
  104.  
  105.         StandardFileReply = record
  106.                 sfGood: BOOLEAN;
  107.                 sfReplacing: BOOLEAN;
  108.                 sfType: OSType;
  109.                 sfFile: FSSpec;
  110.                 sfScript: ScriptCode;
  111.                 sfFlags: INTEGER;
  112.                 sfIsFolder: BOOLEAN;
  113.                 sfIsVolume: BOOLEAN;
  114.                 sfReserved1: LONGINT;
  115.                 sfReserved2: INTEGER;
  116.             end;
  117.  
  118. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  119.         ActivationOrderListPtr = ^INTEGER;
  120.  
  121. { the following also include an extra parameter of "your data pointer" }
  122.         DlgHookProcPtr = ProcPtr;  { FUNCTION DlgHook(item: INTEGER; theDialog: DialogPtr): INTEGER; }
  123.         FileFilterProcPtr = ProcPtr;  { FUNCTION FileFilter(pb: CInfoPBPtr): BOOLEAN; }
  124.         DlgHookYDProcPtr = ProcPtr;  { FUNCTION DlgHookYD(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER; }
  125.         ModalFilterYDProcPtr = ProcPtr;  { FUNCTION ModalFilterYD(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN; }
  126.         FileFilterYDProcPtr = ProcPtr;  { FUNCTION FileFilterYD(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN; }
  127.         ActivateYDProcPtr = ProcPtr;  { PROCEDURE ActivateYD(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr); }
  128.         DlgHookUPP = UniversalProcPtr;
  129.         FileFilterUPP = UniversalProcPtr;
  130.         DlgHookYDUPP = UniversalProcPtr;
  131.         ModalFilterYDUPP = UniversalProcPtr;
  132.         FileFilterYDUPP = UniversalProcPtr;
  133.         ActivateYDUPP = UniversalProcPtr;
  134.  
  135.     const
  136.         uppDlgHookProcInfo = $000003A0; { FUNCTION (2 byte param, 4 byte param): 2 byte result; }
  137.         uppFileFilterProcInfo = $000000D0; { FUNCTION (4 byte param): 1 byte result; }
  138.         uppDlgHookYDProcInfo = $00000FA0; { FUNCTION (2 byte param, 4 byte param, 4 byte param): 2 byte result; }
  139.         uppModalFilterYDProcInfo = $00003FD0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 1 byte result; }
  140.         uppFileFilterYDProcInfo = $000003D0; { FUNCTION (4 byte param, 4 byte param): 1 byte result; }
  141.         uppActivateYDProcInfo = $000036C0; { PROCEDURE (4 byte param, 2 byte param, 1 byte param, 4 byte param); }
  142.  
  143.     function NewDlgHookProc (userRoutine: DlgHookProcPtr): DlgHookUPP;
  144.     {$IFC NOT GENERATINGCFM }
  145.     inline
  146.         $2E9F;
  147.     {$ENDC}
  148.  
  149.     function NewFileFilterProc (userRoutine: FileFilterProcPtr): FileFilterUPP;
  150.     {$IFC NOT GENERATINGCFM }
  151.     inline
  152.         $2E9F;
  153.     {$ENDC}
  154.  
  155.     function NewDlgHookYDProc (userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  156.     {$IFC NOT GENERATINGCFM }
  157.     inline
  158.         $2E9F;
  159.     {$ENDC}
  160.  
  161.     function NewModalFilterYDProc (userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  162.     {$IFC NOT GENERATINGCFM }
  163.     inline
  164.         $2E9F;
  165.     {$ENDC}
  166.  
  167.     function NewFileFilterYDProc (userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  168.     {$IFC NOT GENERATINGCFM }
  169.     inline
  170.         $2E9F;
  171.     {$ENDC}
  172.  
  173.     function NewActivateYDProc (userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  174.     {$IFC NOT GENERATINGCFM }
  175.     inline
  176.         $2E9F;
  177.     {$ENDC}
  178.  
  179.     function CallDlgHookProc (item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  180.     {$IFC NOT GENERATINGCFM}
  181.     inline
  182.         $205F, $4E90;
  183.     {$ENDC}
  184.  
  185.     function CallFileFilterProc (pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  186.     {$IFC NOT GENERATINGCFM}
  187.     inline
  188.         $205F, $4E90;
  189.     {$ENDC}
  190.  
  191.     function CallDlgHookYDProc (item: INTEGER; theDialog: DialogPtr; yourDataPtr: univ Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  192.     {$IFC NOT GENERATINGCFM}
  193.     inline
  194.         $205F, $4E90;
  195.     {$ENDC}
  196.  
  197.     function CallModalFilterYDProc (theDialog: DialogPtr; var theEvent: EventRecord; var itemHit: INTEGER; yourDataPtr: univ Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  198.     {$IFC NOT GENERATINGCFM}
  199.     inline
  200.         $205F, $4E90;
  201.     {$ENDC}
  202.  
  203.     function CallFileFilterYDProc (pb: CInfoPBPtr; yourDataPtr: univ Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  204.     {$IFC NOT GENERATINGCFM}
  205.     inline
  206.         $205F, $4E90;
  207.     {$ENDC}
  208.  
  209.     procedure CallActivateYDProc (theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: univ Ptr; userRoutine: ActivateYDUPP);
  210.     {$IFC NOT GENERATINGCFM}
  211.     inline
  212.         $205F, $4E90;
  213.     {$ENDC}
  214.  
  215.     type
  216.         SFTypeList = array[0..3] of OSType;
  217.  
  218. {}
  219. {    The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".}
  220. {    For C, this will add "const" and make it an in-only parameter.}
  221. {    For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.}
  222. {}
  223. {    ConstSFTypeListPtr is a pointer to an array of OSTypes.}
  224. {}
  225.         ConstSFTypeListPtr = ^OSType;
  226.  
  227.  
  228.     procedure SFPutFile (where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; var reply: SFReply);
  229.     {$IFC NOT GENERATINGCFM}
  230.     inline
  231.         $3F3C, $0001, $A9EA;
  232.     {$ENDC}
  233.     procedure SFGetFile (where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; var reply: SFReply);
  234.     {$IFC NOT GENERATINGCFM}
  235.     inline
  236.         $3F3C, $0002, $A9EA;
  237.     {$ENDC}
  238.     procedure SFPPutFile (where: Point; prompt: ConstStr255Param; origName: ConstStr255Param; dlgHook: DlgHookUPP; var reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  239.     {$IFC NOT GENERATINGCFM}
  240.     inline
  241.         $3F3C, $0003, $A9EA;
  242.     {$ENDC}
  243.     procedure SFPGetFile (where: Point; prompt: ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; var reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  244.     {$IFC NOT GENERATINGCFM}
  245.     inline
  246.         $3F3C, $0004, $A9EA;
  247.     {$ENDC}
  248.     procedure StandardPutFile (prompt: ConstStr255Param; defaultName: ConstStr255Param; var reply: StandardFileReply);
  249.     {$IFC NOT GENERATINGCFM}
  250.     inline
  251.         $3F3C, $0005, $A9EA;
  252.     {$ENDC}
  253.     procedure StandardGetFile (fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; var reply: StandardFileReply);
  254.     {$IFC NOT GENERATINGCFM}
  255.     inline
  256.         $3F3C, $0006, $A9EA;
  257.     {$ENDC}
  258.     procedure CustomPutFile (prompt: ConstStr255Param; defaultName: ConstStr255Param; var reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: univ Ptr);
  259.     {$IFC NOT GENERATINGCFM}
  260.     inline
  261.         $3F3C, $0007, $A9EA;
  262.     {$ENDC}
  263.     procedure CustomGetFile (fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; var reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: univ Ptr);
  264.     {$IFC NOT GENERATINGCFM}
  265.     inline
  266.         $3F3C, $0008, $A9EA;
  267.     {$ENDC}
  268.     function StandardOpenDialog (var reply: StandardFileReply): OSErr;
  269.  
  270. { $ALIGN RESET}
  271. { $POP}
  272.  
  273. {$ENDC}
  274.  {__STANDARDFILE__}
  275.  
  276. implementation
  277. end.
  278.